// 导入数据库操作模块
const db = require('../db/index')


// 获取系统设置数据
exports.systemSetting = (req, res) => {
  // 定义 SQL 语句，查询用户是否首次登录
  const sqlStr = 'select * from system_settings where user_id=?'
  db.query(sqlStr, req.user.openid, (err, results) => {
    // 执行 SQL 语句失败
    if (err) {
      return res.cc(err)
    }
    // 判断用户是否首次登录
    if (results.length === 0) {
      // 定义插入新用户的 SQL 语句
      const sql = 'insert into system_settings set ?'
      // 调用 db.query() 执行 SQL 语句
      db.query(sql, { user_id: req.user.openid }, (err, results) => {
        // 判断 SQL 是否执行成功
        if (err) return res.cc(err)
        // 判断影响行数是否大于0
        // if (results.affectedRows === 0) return res.send({ status: 1, message: '注册用户失败，请稍后再试!' })
        if (results.affectedRows === 0) return res.cc('连接服务器失败，请稍后再试!')
        // 注册用户成功
        return res.send({
          status: 0,
          message: '获取数据成功!',
          firstLogin: true,
        })
      })
    }
    // 定义查询用户信息的 SQL 语句
    const sql = `select allow_others, on_buzzer, on_bluetooth, on_vibration from system_settings where user_id=?`
    // 调用 db.query() 执行 SQL 语句
    // console.log(req)
    db.query(sql, req.user.openid, (err, result) => {
      // 执行 SQL 语句失败
      if (err) return res.cc(err)
      // 执行 SQL 语句成功，但是查询的结果可能为空
      if (result.length === 0) return res.cc('获取骑行记录失败！')
      // 获取成功
      res.send({
        status: 0,
        message: '获取数据成功!',
        firstLogin: false,
        data: result,
      })
    })
  })
}
// 更新系统设置
exports.editSystemSetting = (req, res) => {
  // 定义更新文章分类的 SQL 语句
  const sql = `update system_settings set ? where user_id=?`
  // 执行更新文章分类的 SQL 语句
  db.query(sql, [req.body, req.user.openid], (err, results) => {
    if (err) return res.cc(err)
    if (results.affectedRows !== 1) return res.cc('修改系统设置失败!')
    res.cc('修改系统设置成功!', 0)
  })
}
// 获取正在报警信息
exports.alerting = (req, res) => {
  const sql = `select latitude, longitude, level, cause, time, on_buzzer from alerm_record where user_id=? and status=0`
  db.query(sql, req.user.openid, (err, result) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
    // 执行 SQL 语句成功，但是查询的结果可能为空
    if (result.length === 0) return res.cc('无警报记录！')
    // 用户信息获取成功
    res.send({
      status: 0,
      message: '获取数据成功!',
      data: result,
    })
  })
}

// 写入报警记录
exports.alarmRecode = (req, res) => {
  const alarmInfo = req.body
  // console.log(alarmInfo)
  // 定义插入新用户的 SQL 语句
  const sql = `insert into alerm_record set ?`
  // 调用 db.query() 执行 SQL 语句
  db.query(sql, {
    user_id: req.user.openid,
    latitude: alarmInfo.latitude,
    longitude: alarmInfo.longitude,
    level: alarmInfo.level,
    cause: alarmInfo.cause,
    status: 1,
    time: alarmInfo.time,
    on_buzzer: alarmInfo.on_buzzer,
  }, (err, results) => {
    // 判断 SQL 是否执行成功
    if (err) return res.cc(err)
    // 判断影响行数是否大于0
    if (results.affectedRows !== 1) return res.cc('服务器繁忙，请稍后再试!')
    // 写入成功
    res.send({
      status: 0,
      message: '报警记录写入成功！'
    })
  })
}


// 获取警报记录
exports.alertRecode = (req, res) => {
  const sql = `select latitude, longitude, level, cause, time, on_buzzer from alerm_record where user_id=?`
  db.query(sql, req.user.openid, (err, result) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
    // 执行 SQL 语句成功，但是查询的结果可能为空
    if (result.length === 0) return res.cc('无警报记录！', 0)
    // 用户信息获取成功
    res.send({
      status: 0,
      message: '获取数据成功!',
      data: result,
    })
  })
}



// 修改蜂鸣器状态
exports.changeBuzStatus = (req, res) => {
  console.log(req.body)
  const sql = `update alerm_record set ? where user_id=?`
  db.query(sql, [{ on_buzzer: req.body.on_buzzer }, req.user.openid], (err, result) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
    // 执行 SQL 语句成功，但是查询的结果可能为空
    if (result.length === 0) return res.cc('修改蜂鸣器失败！')
    // 用户信息获取成功
    res.send({
      status: 0,
      message: '修改状态成功!'
    })
  })
}

// 修改报警状态
exports.changeAlermStatus = (req, res) => {
  console.log(req.body)
  const sql = `update alerm_record set ? where user_id=?`
  db.query(sql, [{ on_buzzer: req.body.on_buzzer, status: 1 }, req.user.openid], (err, result) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
    // 执行 SQL 语句成功，但是查询的结果可能为空
    if (result.length === 0) return res.cc('修改报警状态失败！')
    // 用户信息获取成功
    res.send({
      status: 0,
      message: '修改状态成功!'
    })
  })
}




